Reed-Solomon codes are used to provide error correction for blocks of data. For example, they are widely used in communications and data storage applications. Much of the computational effort needed to decode a Reed-Solomon codeword received with errors is spent in solving the so-called key equation. There are several well-known methods for solving the key equation. Among these is a method proposed by Berlekamp. The Berlekamp method is often implemented in hardware in order to meet speed requirements of the application. Previous implementations of the method used individual registers to hold intermediate values required by the method.